package cn.minhx.dtm.starter.core.service;

import cn.minhx.dtm.starter.core.model.TransactionRecord;

/**
 * 分布式事务服务接口
 *
 * @author min
 */
public interface TransactionService {

	/**
	 * 执行分布式事务
	 *
	 * @param transaction
	 *            事务记录
	 * @param async
	 *            是否异步执行
	 */
	void executeTransaction(TransactionRecord transaction, boolean async);

	/**
	 * 处理单个事务
	 *
	 * @param transaction
	 *            事务记录
	 */
	void processTransaction(TransactionRecord transaction);

	/**
	 * 重试失败的事务
	 *
	 * @param batchSize
	 *            每次处理的记录数上限
	 */
	void retryFailedTransactions(int batchSize);
}
